package fa7.socialcode.service.impl;

import java.util.Date;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import fa7.socialcode.dao.ConteudoDao;
import fa7.socialcode.dao.DenunciaDao;
import fa7.socialcode.dao.UsuarioDao;
import fa7.socialcode.model.Conteudo;
import fa7.socialcode.model.Denuncia;
import fa7.socialcode.model.Usuario;
import fa7.socialcode.service.DenunciaManager;

@Service(value="denunciaManager")
public class DenunciaManagerImpl implements DenunciaManager{
	
	@Autowired
	private DenunciaDao denunciaDao;
	@Autowired
	private ConteudoDao conteudoDao;
	@Autowired
	private UsuarioDao usuarioDao;
	
	public void setDenunciaDao(DenunciaDao dao) {
        this.denunciaDao = dao;
    }

    public List findDenuncias() {
        return denunciaDao.findDenuncias();
    }
    
    public Denuncia findDenuncia(String denunciaId) {
        return denunciaDao.findDenuncia(Long.valueOf(denunciaId));
    }
    
    public void saveDenuncia(Denuncia denuncia, Long conteudoId, Long usuarioId) {
    	denuncia.setDataPostagem(new Date());
    	Usuario usu = usuarioDao.findUsuario(usuarioId); 
    	Conteudo con = conteudoDao.findConteudo(conteudoId);
		denuncia.setConteudo(con);
		denuncia.setUsuario(usu);
        denunciaDao.saveDenuncia(denuncia);
    }
    
    public void removeDenuncia(String denunciaId) {
        denunciaDao.removeDenuncia(Long.valueOf(denunciaId));
    }
    
	public void setConteudoDao(ConteudoDao conteudoDao) {
		this.conteudoDao = conteudoDao;
	}
	
	public void setUsuarioDao (UsuarioDao usuarioDao){
		this.usuarioDao = usuarioDao;
	}
	
	public List findConteudos() {
		// TODO Auto-generated method stub
		return conteudoDao.findConteudos();
	}
	
	public List findUsuarios(){
		return usuarioDao.findUsuarios();
	}
}
